home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / haeberli / README < prev    next >
Text File  |  1994-08-01  |  35KB  |  787 lines

  1.  
  2.            TOTALLY INSANE(tm) Graphics Tools and Utility Libraries
  3.  
  4.  
  5.                               OBLIGATORY NOTE
  6.  
  7.    THIS SOFTWARE IS PROVIDED "AS IS" WITH NO WARRANTIES OF ANY KIND INCLUDING 
  8.    THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
  9.    PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
  10.    DO NOT USE NEAR WATER.  DO NOT USE WHILE OPERATING HEAVY MACHINERY.
  11.  
  12.    This software is provided without support and without any obligation 
  13.    on the part of Silicon Graphics, Inc. to assist in its use, correction,
  14.    modification or enhancement.  There is no guarantee that this software 
  15.    will be included in future software releases.  But what is guaranteed
  16.    anyway?
  17.  
  18.                                Paul Haeberli
  19.                              Silicon Graphics
  20.  
  21.                         last updated:  July, 1994
  22.  
  23.  
  24.  
  25.     Contents:
  26.  
  27.    128env      - collection of spherical environment map images
  28.    128tex      - collection of small texture map images
  29.    abekas      - utilities from Abekas Video Systems
  30.    autopaint   - "autopaint" an rgb image into various "altered states"
  31.    compexp     - compression explorer w/sliders to adjust compression params
  32.    enhance     - swank image processing GUI prog that makes use of libui.a
  33.    envmaps     - cubical format environment maps
  34.    envtools    - environment map tools
  35.    fonts       - a bunch of outline fonts in our polygonal outline font fmt
  36.    fonttools   - outline font tools
  37.    images      - some IRIS images that can be "ipaste"d to the screen 
  38.    imgtools    - a collection of tools for dealing with images
  39.    imp         - "the new impressionist" -- an image paint program
  40.    impression  - interactive tools to create painted reps of scanned-in photos
  41.    include     - files defining various data structures used by the libs
  42.    jpeg        - jpeg img [de]compression sw + support to manip SGI image files
  43.    leep        - software implementation of the LEEP projection
  44.    lib         - contains pre-built--rle, tri, ui, vor--libraries
  45.    libcan      - basic support for creation and manipulation of canvases
  46.    libgutil    - a graphics utility library
  47.    libimage    - a library for reading and writing images
  48.    libtiff     - a tiff image library plus a tiff tools subdir
  49.    movie       - programs for compressing and decompressing streams of images
  50.    mpeg        - contains a public domain MPEG video software decoder
  51.    mtex        - img-processing app to massage images for use as texture maps
  52.    objects     - a bunch of sgo objects
  53.    objtools    - object tools
  54.    pstools     - postscript processing tools for the IRIS
  55.    sgisep      - has been removed--see note below for "sgisep"
  56.    styline     - create interactive hidden line drawing of a geometric object
  57.    tools       - desktop and graphics utilities tools
  58.    tritest     - decompose a complex polygons into a series of triangles
  59.    vidiot      - "video feedback" prog animates a face w/audio input
  60.    vidpan      - contains tools for controlling a Panasonic Video disc recorder
  61.    vidsony     -    "       "    "      "   a SONY LVR-5000 Video disc recorder
  62.    vidtools    - tools for processing streams of video images
  63.    vortest     - example to document the structures in lib/libvor.a
  64.  
  65.  
  66.                             Paul 'n dave
  67.  
  68.  
  69.  
  70.    
  71.            =======================================================
  72.            Minimalist breakdown of this subtree's contents follow:
  73.            =======================================================
  74.  
  75.  
  76.                 NEWEST CELEBRITIES/ADDITIONS TO THE "FAMBLEE"
  77.  
  78.  
  79.     imgtools/icmp --
  80.  
  81.     compares two IRIS images.  The first and second images are placed 
  82.         in the front and back buffers respectively to start with.  Two 
  83.     more images are computed. The third image in the scheem is as 
  84.     large as the largest image among the input images along both 
  85.     dimentions.  It consists of identical pixels of the input images 
  86.     if exist, and 0x00ffff00 otherwise.  The forth image is similar 
  87.     to the thirt, except that comparision is done only for the rgb 
  88.     channels excluding the alpha channel.  This is useful for 
  89.     alphaless systems.
  90.  
  91.     ipaste_ogl --
  92.  
  93.         an OpenGL implementation of ipaste which relies solely on Xlib.
  94.         included are the necessary incarnations of the 3 libgutil files:
  95.         fastimg.c, file.c, and misc.c needed by ipaste.
  96.  
  97.     pstools --
  98.  
  99.     contains various programs combining operations with/on PostScript
  100.     files with IRIS GL graphics.  One can:  transmute a b/w image file
  101.     into a PostScript path which then generates a showpage command on
  102.     output;  print a square array of pages ("readable" is contained 
  103.     within "square factors" of 2 or 3) on a single paper page;  take
  104.     a PostScript document with page structuring conventions and 
  105.     generate 2 or 4 page signatures on a laser printer;  print a 
  106.     calendar for one month using a specified image file;  take one or
  107.     more PostScript documents with page structuring conventions and 
  108.     insert transformations to adjust the offset and scale of the 
  109.     documents;  take a PostScript document with page structuring 
  110.     conventions and output Postscript that prints the pages reduced in 
  111.     size and arrayed in x and y;  print CMYK test scales that can be 
  112.     used to calibrate printers;  and/or take a one page PostScript 
  113.     document, and generate a two dimensional array of copies on the 
  114.     output page.
  115.  
  116.     vidpan --
  117.     
  118.     contains tools for controlling a Panasonic Video disc recorder,
  119.     including:  recording a specified range of processed frames on the 
  120.     video disc onto the disk recorder;  record one frame from a live
  121.         camera onto the video disc;  turn on/off the numerical and status 
  122.         displays;  set the frame number on the video disc for recording;  
  123.     record a single frame at the specified location on the video disc;  
  124.     display a sequence of frames from the video disc;  have the disc 
  125.     recorder display the input video signal on its video output;  have 
  126.     the disc recorder display video from the disc on its video output;  
  127.     and display a color image on the Indigo Starter video board and 
  128.     record a frame.
  129.  
  130.  
  131.     vidsony -- 
  132.  
  133.         contains tools for controlling a SONY LVR-5000 Video disc recorder,
  134.     including:  recording a specified range of processed frames on the
  135.         video disc onto the disk recorder;  turn on/off the numerical and
  136.         status displays;  set the frame number on the video disc for
  137.         recording;  record a single frame at the specified location on the
  138.         video disc;  display a sequence of frames from the video disc;  
  139.         have the disc recorder display the input video signal on its video
  140.         output;  have the disc recorder display video from the disc on its
  141.         video output;  and display a color image on the Indigo Starter video
  142.         board and record a frame.
  143.  
  144.     jpeg --
  145.  
  146.         contains the fourth public release of the Independent JPEG Group's 
  147.     free JPEG file format image compression/decompression software
  148.     including images of libjpeg.a, cjpeg, and djpeg.  Support has been
  149.     added to manipulate SGI image files to/from jpeg format.  See the
  150.     README.sgi file in this directory for details on compressing SGI
  151.     image files to jpeg format and then decompressing them back to SGI
  152.     image format.  JPEG is a standardized compression method for full-
  153.     color and gray-scale images.  JPEG is intended for compressing 
  154.     "real-world" scenes; cartoons and other non-realistic images are not 
  155.     its strong suit.  JPEG is lossy, meaning that the output image is 
  156.     not necessarily identical to the input image.  Hence you must not 
  157.     use JPEG if you have to have identical output bits.  However, on 
  158.     typical images of real-world scenes, very good compression levels 
  159.     can be obtained with no visible change, and amazingly high 
  160.     compression levels are possible if you can tolerate a low-quality 
  161.     image.
  162.  
  163.     mpeg --
  164.  
  165.         contains a public domain MPEG video software decoder.  The decoder 
  166.     is implemented as a library that will take a video stream and 
  167.     display it in an X window on an 8, 24 or 32 bit deep display.  The 
  168.     main routine is supplied to demonstrate the use of the decoder 
  169.     library.  Several dithering algorithms are supplied based on the 
  170.     Floyd-Steinberg, ordered dither, and half-toning algorithms that 
  171.     tradeoff quality and performance.  Neither the library nor the main 
  172.     routine (mpeg_play) handle real-time synchronization or audio 
  173.     streams.
  174.  
  175.  
  176.  
  177.               and much, Much, more TOTALLY INSANE (tm) stuff:
  178.  
  179.  
  180.  
  181.  
  182. Digital Video Data Generation and Support:
  183.  
  184.     vidiot --
  185.  
  186.         demonstrates a fun video conferencing idea we're exploring.  The
  187.         concept is to use the amplitude of sound to select between a series
  188.         of different images to animate a conversation.
  189.  
  190.     vidtools --
  191.         tools for processing streams of video images
  192.  
  193.     abekas --
  194.  
  195.         this dir contains source code tools from Abekas Video Systems 
  196.         including conversion programs, reading and writing examples, and
  197.         documentation on scsi connections to/from Abekas disk recorders.
  198.  
  199.     libgutil/abekas.c --
  200.        
  201.         this module contains routines that can generate and read digital 
  202.         video data.
  203.     
  204.     imgtools/{fromyuv,toyuv} --
  205.  
  206.         these 2 programs convert between Abekas digital video images and 
  207.         Iris image files.  These tools can be used to record images from
  208.         the Iris on a device that supports digital video data, or to make 
  209.         an image that can be displayed on the Iris.
  210.  
  211.  
  212.  
  213.  
  214. Environment Mapping Tools:  
  215.  
  216.    128env --
  217.  
  218.         this dir contains a small collection of 128x128 processed spherical
  219.         environment map images.  We are actively collecting interesting
  220.         128x128 or 256x256 environment map images.  Can you contribute to 
  221.         this growing collection?  (see bottom of file.)
  222.  
  223.    128tex --
  224.  
  225.         this dir contains a small collection of 128x128 texture map images.
  226.         We are actively looking for more interesting 128x128 and 256x256 
  227.         texture map images.  Can you contribute to this growing 
  228.         collection?  (see bottom of file.)
  229.  
  230.    envmaps --
  231.  
  232.         3 384x256 environment maps in cubical format.  Generation of new 
  233.         envmaps like these are accomplished with the tools in envtools.
  234.  
  235.    envtools -- (create and manipulate environment maps)
  236.  
  237.         Environment or Reflection mapping is a technique that uses texture 
  238.         mapping to simulate the smooth shading of reflective surfaces.  It 
  239.         can be used to create very nice shading of more diffuse surfaces 
  240.         as well.  A variety of tools for creating and manipulating 
  241.         environment maps are provided in the envtools directory:
  242.  
  243.         cylenv    - make a cylindrical projection from a cubical env map 
  244.         envreduce - zoom a cubical env map down by a factor of 2
  245.         envexpand - zoom a cubical env map up by a factor of 2
  246.         fromfish  - convert a mercator projection scanned fisheye image
  247.                     to a cubical env map
  248.         frommerc  - convert a mercator projection into a cubical env map
  249.         sphereenv - make a spherical env map from a cubical by rendering 
  250.                     a reflective sphere
  251.         tofish    - create a fisheye view of a cubical env map
  252.  
  253.                        
  254.  
  255.  
  256. Polygonal Outline Font Format Tools: 
  257.  
  258.     fonts --
  259.  
  260.         this dir contains a collection of fonts in our polygonal outline 
  261.         font format plus one font composed of triangle meshes.  New fonts
  262.         can be created using the tools in fonttools.
  263.         
  264.     libgutil --
  265.         
  266.         objfnt.c   - this module contains basic support for our polygonal
  267.                      outline format
  268.         charfill.c - this module contains code to create and draw anti-
  269.                      aliased bitmaps of an outline font
  270.  
  271.     fonttools --
  272.  
  273.         Using the binary file format for storing fonts described above, 
  274.         these fonts can either be polygonal outlines, spline outlines, or 
  275.         triangle meshes.  Various font conversion utilities are provided 
  276.         here:
  277.  
  278.         adjustfont - change the char spacing and origin of chars in a font
  279.         afm2tfm    - converts Adobe font metric files into TEX font metrix
  280.                      files
  281.         bevelstring- creates extruded beveled chars from a spline outline
  282.                      of a polygon font
  283.         charfill   - render antialiased text using a polygonal outline font
  284.         clonewid   - copy widths from one typeface to another
  285.         drawfont   - draw characters with triangle meshes in a GL window
  286.         fntslide   - an example application that fills a polygonal font
  287.         fonttest   - demonstrates drawing filled and outlined text
  288.     frompsf    - convert a .psf font into the Hex format
  289.         fromtype1  - converts an Adobe Type1 font to a spline or polygonal
  290.                      font in sgi format  
  291.         makepsfont - converts a polygonal or spline font into a PostScript
  292.                      font
  293.         meshfont   - automatically triangulate a polygonal font
  294.         paintfont  - a paint program that lets you create your own fonts
  295.                      by interactively painting character's glyphs
  296.         printfont  - prints a textual description of a font
  297.         rawtohex   - this will convert the binary type1 from to a 
  298.                      printable hex format
  299.         restoraw   - take an Adobe type1 font from a Macintosh and write
  300.                      out a binary type1 font
  301.         simpfont   - used to eliminate fine detail in an outline font
  302.     texfont    - turn an outline font into a texture map
  303.     textmap    - use texture mapping to draw text
  304.         totype1    - convert an outline font into a PostScript font
  305.     undup      - eliminate duplicate points on a .of file
  306.         warpfont   - apply geometric transformations (add slope or jitter) 
  307.                      to a font
  308.         
  309.  
  310.  
  311.  
  312. Image Manipulation Tools:
  313.  
  314.     impression --
  315.  
  316.         interactive tools for creating painted representations of
  317.         scanned-in photographs.  besides an interactive paint program
  318.         called impression, the other tools can be used to manipulate
  319.         paintings stored as a list of brush strokes.  these brush stroke
  320.         files are called "sample sets" and usually have a suffix of ".ss".
  321.  
  322.     enhance --
  323.  
  324.         an image enhancement program that lets modify images by mutation and
  325.         selection.  the graphical interface lets you chose many enhancement
  326.         operations, including gamma warping saturation, color balance,
  327.         quantization, and sharpening.  this is an example of a program that
  328.         uses the Showcase UI library.
  329.  
  330.     autopaint --
  331.  
  332.         automatically "paint" an rgb image where you can alter the size of
  333.         image, do tiling, specify/vary the brush stroke image/size/
  334.         direction/alpha and control color noise.
  335.  
  336.     imp --
  337.  
  338.         a swell paint program that does painting in software and copies
  339.         onto the screen.  it has several different brush shapes that can be
  340.         continuously resized.  the density of the paint can be controlled
  341.         using a slider.  various painting modes are supported: normal paint,
  342.         local sharpening, image copy, etc. TRUELY HEINOUS.
  343.  
  344.     compexp --
  345.  
  346.         an image compression application which uses the ShowCase UI library,
  347.         compexp allows you to select various compression parameters and
  348.         instantly see the results!!!!! YEEEEAHHHH! (same technique is used
  349.         in the "movie" dir).
  350.  
  351.     movie --
  352.  
  353.         includes programs for compressing and decompressing streams of
  354.         images.  VERY swank enhanced menu options including fullscreen and
  355.         softzoom toggles.
  356.  
  357.     mtex --
  358.  
  359.         a small image processing application capable of massaging scanned
  360.         images for use as texture maps.  It performs common operations such
  361.         as color or contrast correction, cropping, and sharpening, plus
  362.         unusual functions needed for texture maps.  INSAAAAANE.
  363.  
  364.  
  365.  
  366.  
  367. Images/Image Processing Tools:  
  368.  
  369.     images --
  370.  
  371.         cool2.bw   -
  372.         cutline.bw - 
  373.         horlines.bw-    "border" images used by imgtools/addborder 
  374.         regmark.bw -    to surround an image with a border 
  375.         shadow.bw  -
  376.                      
  377.         logo.bw    -
  378.         oneill.bw  - two IRIS black and white images 
  379.  
  380.         rathouse0.bw -
  381.         rathouse1.bw -
  382.         rathouse2.bw - "rat house reality" black and white images
  383.  
  384.         PuebloB1.rgb - SGI imagelib images of photographs taken inside
  385.         PuebloB2.rgb -   Pueblo Bonito, Chaco Canyon, New Mexico
  386.         RoundRock.rgb -  Round Rock, Arizona where hiways _ and _ meet
  387.     Aztec.rgb     -  Aztec Nat'l Monument in Aztec, New Mexico,
  388.     Lomaki.rgb    -  Lomaki House from Wupatki Ruins, Arizona
  389.  
  390.     ratman.rgb - the toolbox janitor
  391.  
  392.     gear[1-8].rgb, duogear - photogs of gears turned into image files.
  393.  
  394.     austin.rgb bill.rgb, chair.rgb, cmyk.rgb, dave.rgb, deerstroke.rgb, 
  395.     drab.rgb, forestcar.rgb, gun.rgb, jeff.rgb, kandplate.rgb, kat.rgb, 
  396.     kupka.rgb, marriott.rgb, max5.rgb, tango.rgb, tent.rgb, vase.rgb, 
  397.     vase1.rgb, vase2.rgb - a smattering of images from paul's virtual
  398.                    image space.
  399.              
  400.  
  401.     imgtools--
  402.  
  403.         abs       -- get the absolute value of an image
  404.         add       -- add two images together
  405.         addborder -- surround an image with a border image.
  406.         addframe  -- add a border to an image
  407.         addnoise  -- add noise to an image
  408.         assemble  -- assemble an array of smaller images
  409.         bgpaste   -- paste an image onto the root window
  410.         blend     -- linearly interpolate two images
  411.         blur      -- low pass filter an image
  412.     bmdither  -- dither img to 1-bit deep bitmap w/err propagation dithering
  413.     bmthresh  -- threshold one image with another and write out a bitmap
  414.         btree     -- display an image using binary tree ordering
  415.         cglue     -- create an rgb image out of 3 black and white images
  416.         conimg    -- (replaces nullimg) creates a constant (single) color image
  417.         convolve  -- convolve an input image with a kernel image
  418.         cscale    -- individually scale the R G B channels of an image
  419.     cutimg    -- extract an particular sized image from a source
  420.     div       -- divide the brightness of two images
  421.         dotgen    -- make an image of two crossed sinusoidal wave patterns
  422.         duotone   -- create a duotone image from a single channel image
  423.     encode    -- classify an image chosing colors from a specified color map
  424.         fieldmerge-- merge two field images into one frame
  425.     findcolor -- find colors in a source image
  426.         fitimg    -- uniformly scale an image to a specific size
  427.         fromalias -- convert an Alias image to an IRIS image
  428.         frombin   -- convert a binary dump of image data to an IRIS image
  429.         fromcmap  -- convert a color map into an image with one scanline
  430.         fromdi    -- convert an old SGI .di dithered image into an IRIS image
  431.         fromface  -- convert a UNIX faceserver image to IRIS format
  432.         fromgif   -- convert a Compuserve GIF image to IRIS format
  433.         frommac   -- convert a MacPaint image to IRIS format
  434.         frompic   -- convert a MOVIE BYU .PIC image to IRIS format
  435.         fromppm   -- convert a PPM file to IRIS format
  436.         fromrla   -- convert a Wavefront image to an IRIS image
  437.         fromsun   -- convert a sun rasterfile image to IRIS format
  438.         fromtarga -- convert a targa image into an IRIS image
  439.         fromtiff  -- convert almost any tiff image file to IRIS format
  440.         fromutah  -- convert a UTAH raster toolkit image into an IRIS image
  441.         fromxbm   -- convert an X Bitmap image to IRIS format
  442.         fromxwd   -- convert an xwd file to IRIS format
  443.         fromyuv   -- convert an Abekas yuv image to IRIS format
  444.         gammawarp -- lighten or darken an image
  445.         gendit    -- perform general image dithering
  446.         greyscale -- make 19 different image patterns
  447.         halftone  -- half-tone an image, using Hollaway's technique
  448.         hipass3   -- high pass filter an image using a 3x3 filter kernel
  449.         hist      -- compute and display the histogram of an image file
  450.         histeq    -- perform histogram equalize an image file
  451.         iavg      -- average a set of images
  452.         iblend    -- blend 2 images using a (bw) mat
  453.     icmp      -- visually compare two iris images
  454.         iflip     -- flip an image
  455.         imean     -- finds the average pixel value of an image
  456.         imgexp    -- expand the range of pixel values in an image
  457.         imgsize   -- print the xsize, ysize, and zsize of an image
  458.         imgwrap   -- shift pixels left one bit
  459.         invert    -- invert an image
  460.         ipaste    -- display an image
  461.         iroll     -- rotationally roll an image in x and y directions
  462.     irotate   -- rotate an image by a given angle
  463.         isame     -- compare 2 images pixel by pixel to see if they're the same
  464.         iset      -- set the type (NORMAL,DITHERED,SCREEN,COLORMAP) of an image 
  465.         istat     -- print the header information of a list of image files
  466.         izoom     -- magnify or shrink an image
  467.     jpaste    -- an ipaste for JPEG compressed images
  468.         loadmap   -- loads a colormap stored in a file
  469.         mapimg    -- translates a screen image into an RGB image
  470.         max       -- get the maximum of two images
  471.         min       -- calculate the minimum of two images
  472.     mksep     -- convert an RGB image into C, M, K, and K images
  473.         movie     -- display a series of images in a "movie" sequence
  474.         mult      -- multiply two images
  475.         noblack   -- remove all the black from an image
  476.     normtodir -- determine the direction of the gradient across an image
  477.         oneband   -- get a single band (or channel) of an image
  478.         over      -- put one image on top of another
  479.         perhist   -- print percent histogram values for an image
  480.         postcard  -- make an image look like a postcard
  481.         quant     -- quantify an image to have n levels
  482.         randimg   -- generate a random noise image
  483.         readimg   -- simple example using libimage to read an RGB image file
  484.         rectimg   -- display a color or BW image on the iris
  485.         repcolor  -- replace specified colors within an image
  486.         rle       -- force an image to be stored using run length encoding
  487.     rmsdiff   -- calculate the rms difference between two images
  488.     roam      -- roam around a very large image using tiles
  489.     rothue    -- rotate the hue of an image
  490.         saturate  -- increase of decrease an image's saturation level
  491.         savemap   -- save the current contents (or subrange) of the colormap
  492.         scope     -- explore/view an image of any size
  493.         scrsave   -- save a part of the screen into an IRIS image file
  494.         setlum    -- modifies the luminance (brightness) on an image
  495.         shear     -- shear an image diagonally
  496.         showimg   -- example using libimage to open, read and display an image
  497.         slide     -- zoom an image up for full screen display
  498.         snapshot  -- save a portion of the screen in an image file
  499.     softframe -- add a black frame around an image
  500.         sub       -- subtract two images
  501.         subimg    -- extract a sub-region from an image into a new image file
  502.         thresh    -- threshold one image with another using a threshimage
  503.         tile      -- repeat an image in two dimensions
  504.         toalias   -- convert an IRIS image to an Alias image
  505.         toascii   -- use text characters to represent an IRIS image
  506.         tobin     -- convert an IRIS image to a binary dump of pixel data
  507.         tobw      -- convert an IRIS color image to black and white
  508.         togif     -- convert an IRIS image to a Compuserve GIF image
  509.         tomac     -- convert an IRIS image to MacPaint format
  510.         tonews    -- convert an IRIS image to NeWS format
  511.         topict    -- convert an IRIS image to Macintosh PICT format
  512.         toppm     -- convert an IRIS image to Jef Poskanzer's ppm format
  513.         tops      -- convert an IRIS image to PostScript format
  514.         toscitex  -- convert IRIS images into Scitex CT2T images
  515.         tosun     -- convert an IRIS image to a sun raster file
  516.         totarga   -- convert an IRIS image to a type 2 (RGB) targa image
  517.         totiff    -- convert a color or b&w IRIS image file into tiff format
  518.         toutah    -- convert an IRIS image to Utah raster toolkit format
  519.         toyuv     -- convert an IRIS image to yuv format
  520.         toxwd     -- convert an IRIS image to X11 window dump (xwd) format
  521.     unframe   -- remove constant colored pixels from around an image
  522.         verbatim  -- force an IRIS image to be stored in verbatim format
  523.         vhist     -- display a 3-D volume histogram of a color image
  524.         writeimg  -- simple libimage example to write out an RGB image file
  525.         xzoom     -- magnify or minify an image in the x direction
  526.  
  527.  
  528.  
  529.  
  530. Image Libraries:
  531.  
  532.     libimage --
  533.  
  534.         libimage contains the modules necessary to create, open, read and 
  535.         write IRIS image files.  See libimage/README for the dope on the
  536.         fundamentals of libimage.a. (README.lp to PostScript printers)
  537.         NOTE:  there is a new image processing library called libil.a.  
  538.                This Image Library (IL) is a bonafide software product with 
  539.                completely documented and supported features.  Its default 
  540.                image file format is tiff, but it also understands 
  541.                everything about IRIS image file format.   This C++ library 
  542.                is an object-oriented, extensible toolkit for creating, 
  543.                processing and displaying images on all SGI platforms.  
  544.                With the release of this IL, the singular reliance on 
  545.                libimage's core capabilities is being superceded by a 
  546.                library supplying a superset of functionality available 
  547.                from libimage.  It is important for all developers and 
  548.                programmers to understand the reality of libil.a's 
  549.                existence.
  550.  
  551.     libgutil -- 
  552.  
  553.         contains MANY modules making up a collection of graphics utilities
  554.         used by the programs in envtools, fonttools and imgtools.  There is
  555.         also a copy of this library that lives in /usr/lib.  This library 
  556.         includes functions to triangulate concave polygons, draw character 
  557.         strings with geometry, create beveled and extruded shapes, automatic 
  558.     generation of triangle meshes, AND MUCH MUCH MORE!!!!!!  
  559.     Documentation is still needing to be expanded for this, but a 
  560.     starting point is the libgutil/libgutil.README file.  
  561.         
  562.     libcan --
  563.  
  564.         this library supports doing image processing operations on arrays 
  565.         of pixels.  used by the "imp" and "enhance" programs.
  566.  
  567.     libtiff --
  568.  
  569.         contains public domain TIFF support software.  Included is a library,
  570.         libtiff, for reading and writing TIFF files.  The library, along with
  571.         associated tool programs, should handle most of your needs for 
  572.         reading and writing files that follow the 5.0 TIFF spec for Classes 
  573.         B, G, P, and R.  There is also some support for proposed additions 
  574.         that are to appear in the 6.0 TIFF spec.  Also included is a couple
  575.         of directories of contributed stuff, a documentation directory 
  576.         containing a copy of the 5.0 spec, and some test images for most
  577.         formats supported by the library.  Please consult the various README
  578.         files for more details on what is included, what to do, etc. 
  579.  
  580.     lib/librle.a --
  581.  
  582.         contains the library part of the Utah Raster Toolkit distribution 
  583.     version 3.0 of June, 1990.  "imgtools/fromutah" and "imgtools/toutah"
  584.     are image file conversion programs that need this library.  The 
  585.     Utah Raster Toolkit is now distributed from the University of 
  586.     Michigan and the University of Utah.
  587.  
  588.  
  589.  
  590.  
  591. Other Libraries:
  592.  
  593.     lib/libtri --
  594.  
  595.         This library supports triangularization of concave polygons.  libtri
  596.         is able to take concave polygons, and/or polygons with holes in them,
  597.         and correctly decompose these complex polygons into a series of 
  598.         triangles.  An example program in tritest/tritest.c demonstrates an 
  599.         implementation of this process.  We are not able to include the 
  600.         source for this library at this time.
  601.  
  602.     lib/libui.a --
  603.  
  604.         the showcase development library is included cuz more things are
  605.         being written using the showcase ui (see compexp, enhance, movie,
  606.     and styline)..  
  607.  
  608.     lib/libvor.a --
  609.  
  610.         used with the impression programs, libvor.a--written by the great 
  611.     Seth Teller (no relation to the destructively obsessed Edward T.)--
  612.     is a voronoi partition/delaunay triangulation library based on Steve 
  613.     Fortune's plane sweep algorithm published in "Algorithmica," 1987, 
  614.     "A Sweepline Algorithm for `Voronoi' Diagrams", volume 2, pp. 
  615.     153-174.  An example program can be found in ../vortest with its 
  616.     accompanying copy of vordefs.h to better document the structures 
  617.     defined/accessed in libvor.a.
  618.  
  619.  
  620.  
  621.  
  622. Geometry Tools:
  623.  
  624.     Simple Geometry Format modules --
  625.  
  626.         libgutil/{sgiobj.c, sgiobjgl.c} contains the routines to create:
  627.  
  628.         - List of quadrilaterals
  629.         - List of triangles       
  630.         - Mesh of triangles
  631.  
  632.         All of these are used to create objects of sgo format for 
  633.         representing 3D geometry.  Each sgo object is either a list 
  634.         of quadrilaterals, a list of triangles, or a list of 
  635.         triangle meshes.  The programs in the "objtools" dir provide
  636.         various tools for operating on these objects.  These tools 
  637.         use various functions from libgutil that support a 
  638.         simplified interface to describe shading, automatic triangle 
  639.     mesh generation and efficient drawing of geometry.
  640.      
  641.         libgutil/tmeshobj.c has code which takes an sgo format object 
  642.         composed of a list of triangles and makes this into a tmesh.
  643.  
  644.     objects --
  645.  
  646.         contains a collection of sgo objects.
  647.  
  648.     objtools --
  649.  
  650.         avgnorm  - averages the normals on all polygons in a triangle or 
  651.                    quadralateral object
  652.         explode  - translate verticies in direction of normals
  653.         fitobj   - fits an object into a unit cube
  654.     layer    - view an sgi object interactively
  655.         makeoct  - can be used to create spheres
  656.         objprint - prints a textual description of an object
  657.         objstat  - prints info about an sgi object
  658.         spin     - virtual sphere rotation interface
  659.         sterrend - cheap red/cyan stereo
  660.         subdiv   - subdivide triangles to maximum edge length
  661.         swcurve  - create surfaces of rotation from a textual list of numbers
  662.     tlbsp    - BSP sort a triangle list
  663.     tldraw   - draw a triangle list
  664.     tlfit    - fit a triangle list to a -1,1 -1,1 space
  665.     tlline   - locate interesting edges in a set of triangles
  666.     tllint   - merge coordinates that are almost identical
  667.     tlsplit  - split all intersecting triangles in a triangle list
  668.     tlsub    - fit a triangle list into a -1.0..1.0 -1.0..1.0 space
  669.     tltops   - draw a triangle list
  670.     tltotext - print a triangle list in text format
  671.         tomesh   - auto tmesh generation.
  672.         tosgo    - converts old spin formant objects to sgo format
  673.         totri    - convert a quadlist object into a triangle list
  674.         warpgeom - warps the geometry of an object
  675.         warpnorm - this warps the normals of an object
  676.  
  677.  
  678.  
  679.  
  680. Color Correction Software for Printing:
  681.  
  682.     sgisep --
  683.  
  684.      We used to provide a subtree of color separation software to convert 
  685.      RGB images to film for 4 color printing, but it is felt you will get 
  686.      better results by simply sending your original rgb images to Phoenix
  687.      Press directly.  Their fown # is 714/261-0333. Ask for James Levesque.
  688.  
  689.  
  690.  
  691.  
  692. Graphics Desktop Tools For The IRIS:
  693.  
  694.     tools --
  695.  
  696.         desktop tools:
  697.  
  698.         blanktime - set the number of frames before the screen blanks
  699.         cedit     - a simple color editor
  700.         clock     - a simple desk clock
  701.         colorbars - colorbar generator 
  702.         cycol     - display a palette of colors
  703.         dynadraw  - caligraphic drawing program
  704.         gamcal    - visually check gamma display calibration
  705.         grid      - draw a 10 by 10 grid for aligning a camera to the display
  706.         ical      - a simple desk calendar
  707.         interp    - gamma-corrected linear color ramp generator
  708.         mag       - pixel replication and magnification in a window
  709.         makemap   - reload default color lut values into the GL color map
  710.         mousemon  - display state of the three mouse buttons
  711.         palette   - display a palette of colors in the colormap
  712.         showmap   - display the contents of the GL color map
  713.         textcolors- set the colors used by a xwsh window
  714.         vis       - copy the bytes of a file to the screen
  715.         weave     - a weaving simulator for IRIS workstations
  716.  
  717.         graphics utility tools:
  718.  
  719.         cpprint - print an image file on a color PostScript printer
  720.         pprint  - print an image file on an adobe post script printer
  721.         rgntest - an rgn example useful for management of regions
  722.         tritest - using libtri.a, a way to triangulate complex polygons
  723.  
  724.  
  725.  
  726.  
  727. In their own universe:
  728.  
  729.     styline --
  730.  
  731.         creates hidden line drawings of 3-D geometry, and uses the Showcase
  732.         UI library to provide sliders that control the graphical style of
  733.         the hidden line drawing.
  734.  
  735.     vortest --
  736.  
  737.         libvor.a is a voronoi partition/delaunay triangulation library
  738.         based on Steve Fortune's plane sweep algorithm published in
  739.         "Algorithmica," 1987, "A Sweepline Algorithm for `Voronoi' Diagrams",
  740.         volume 2, pp. 153-174.  Its .h file, "vordefs.h," and an example
  741.         program, vorexamp.c, are included in this directory to better
  742.         document the structures defined/accessed in libvor.a.  BIZZARRE!!!!
  743.  
  744.  
  745.  
  746.  
  747. Other Geometry Libraries:
  748.  
  749.         PostScript-like path library   - libgutil/path.c
  750.         Matrix library of routines     - libgutil/matrix.c
  751.         Vector library of routines     - libgutil/vect.c
  752.         Easier GL lighting of geometry - libgutil/glshade.c
  753.         Automatic triangle meshing     - libgutil/tomesh.c
  754.            tomesh.c provides the routines to take a set of triangles 
  755.            and make a tmesh out of this list of triangles
  756.  
  757.  
  758.  
  759.  
  760. Other Libraries:
  761.  
  762.         Virtual-sphere interface     libgutil/track.c  
  763.         General image dithering      libgutil/gendit.c & imgtools/gendit.c
  764.         Picking colors from screen   libgutil/getapixel.c
  765.         Graphics machine type query  gfxmachine() inside libgutil/glstuff.c
  766.         Screen gamma                 tools/{gamcal.c, gamma.c}
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.    For anyone wishing to contribute any texture map or environment map
  775.    images to our growing collection please contact:
  776.  
  777.                         dave ratcliffe
  778.                         Silicon Graphics Inc.
  779.                         2011 N. Shoreline Blvd.
  780.                         Mountain View, CA 94039
  781.  
  782.                         email: dave@sgi.com OR devprogram@sgi.com
  783.  
  784.    or simply send me a tar tape of the stuff you'd like us to check out.
  785.    make sure you include an intelligible return address so i can send 
  786.    the tape back to you afterwards.
  787.